using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using DigiOffice.Integration.TBIXchangeAzure.Messages;
using IDB.API.DTO.Document;
namespace DigiOffice.Integration.TBIXchangeAzure.Messages
{
public partial class Address
{
public virtual string AddressLine1 { get; set; }
public virtual string AddressLine2 { get; set; }
public virtual string HouseNumber { get; set; }
public virtual string HouseNumberSuffix { get; set; }
public virtual string PostalCode { get; set; }
public virtual string City { get; set; }
public virtual Reference Country { get; set; }
}
public partial class ConstructionBlock
{
public ConstructionBlock()
{
CustomFields = new CustomField[]{};
}
public virtual string GlobalID { get; set; }
public virtual Reference ProjectReference { get; set; }
public virtual string Code { get; set; }
public virtual string Description { get; set; }
public virtual CustomField[] CustomFields { get; set; }
public virtual DateTime? CreationDate { get; set; }
public virtual string CreatedBy { get; set; }
public virtual DateTime? ModifiedDate { get; set; }
public virtual string ModifiedBy { get; set; }
}
public partial class ConstructionNumber
{
public ConstructionNumber()
{
CustomFields = new CustomField[]{};
}
public virtual string GlobalID { get; set; }
public virtual Reference ProjectReference { get; set; }
public virtual Reference HousingTypeReference { get; set; }
public virtual Reference ConstructionBlockReference { get; set; }
public virtual string Code { get; set; }
public virtual string Description { get; set; }
public virtual Address Address { get; set; }
public virtual bool RentalHouse { get; set; }
public virtual string GuaranteeCertificateNumber { get; set; }
public virtual bool Inactive { get; set; }
public virtual CustomField[] CustomFields { get; set; }
public virtual DateTime? CreationDate { get; set; }
public virtual string CreatedBy { get; set; }
public virtual DateTime? ModifiedDate { get; set; }
public virtual string ModifiedBy { get; set; }
public virtual DateTime? ViewingDate { get; set; }
public virtual bool ViewingDateSpecified { get; set; }
public virtual DateTime? DeliveryDate { get; set; }
public virtual bool DeliveryDateSpecified { get; set; }
}
public partial class CustomField
{
public virtual string Name { get; set; }
public virtual string Value { get; set; }
}
public partial class Header
{
public virtual string MessageID { get; set; }
public virtual DateTime Timestamp { get; set; }
public virtual Party Sender { get; set; }
public virtual Party Recipient { get; set; }
public virtual Object RequestMessageID { get; set; }
public partial class Party
{
public virtual string Title { get; set; }
public virtual string Code { get; set; }
public virtual string Version { get; set; }
public virtual Environment Environment { get; set; }
}
public partial class Environment
{
public virtual string Title { get; set; }
public virtual string Code { get; set; }
}
}
public partial class HousingType
{
public HousingType()
{
CustomFields = new CustomField[]{};
}
public virtual string GlobalID { get; set; }
public virtual Reference ProjectReference { get; set; }
public virtual string Code { get; set; }
public virtual string Description { get; set; }
public virtual CustomField[] CustomFields { get; set; }
public virtual DateTime? CreationDate { get; set; }
public virtual string CreatedBy { get; set; }
public virtual DateTime? ModifiedDate { get; set; }
public virtual string ModifiedBy { get; set; }
}
public partial class MailingAddress
{
public virtual string POBox { get; set; }
public virtual string PostalCode { get; set; }
public virtual string City { get; set; }
public virtual Reference Country { get; set; }
}
public partial class ProcessProjectRequestMessage
{
public virtual Guid InstanceId { get; set; }
public virtual ProjectRequestMessage ProjectRequest { get; set; }
}
public partial class Project
{
public Project()
{
CustomFields = new CustomField[]{};
}
public virtual string GlobalID { get; set; }
public virtual DateTime? CreationDate { get; set; }
public virtual string CreatedBy { get; set; }
public virtual DateTime? ModifiedDate { get; set; }
public virtual string ModifiedBy { get; set; }
public virtual string Code { get; set; }
public virtual string Name { get; set; }
public virtual string Description1 { get; set; }
public virtual string Description2 { get; set; }
public virtual Address Address { get; set; }
public virtual MailingAddress MailingAddress { get; set; }
public virtual Reference ProjectCategoryReference { get; set; }
public virtual Reference ProjectTypeReference { get; set; }
public virtual Reference ProjectStatusReference { get; set; }
public virtual DateTime? StartDate { get; set; }
public virtual DateTime? EndDate { get; set; }
public virtual DateTime? CompletionDate { get; set; }
public virtual bool Inactive { get; set; }
public virtual string Website { get; set; }
public virtual bool IsTemplateProject { get; set; }
public virtual CustomField[] CustomFields { get; set; }
}
public partial class ProjectRequestMessage
{
public virtual Header Header { get; set; }
public virtual Reference ProjectReference { get; set; }
public virtual bool IncludeHousingTypes { get; set; }
public virtual bool IncludeConstructionBlocks { get; set; }
public virtual bool IncludeConstructionNumbers { get; set; }
public virtual bool IncludeDocuments { get; set; }
public virtual bool IncludePurchaseContracts { get; set; }
}
public partial class ProjectResponseMessage
{
public ProjectResponseMessage()
{
HousingTypes = new HousingType[]{};
ConstructionBlocks = new ConstructionBlock[]{};
ConstructionNumbers = new ConstructionNumber[]{};
Documents = new Document[]{};
PurchaseContracts = new PurchaseContract[]{};
}
public virtual Header Header { get; set; }
public virtual Reference ProjectReference { get; set; }
public virtual Project Project { get; set; }
public virtual HousingType[] HousingTypes { get; set; }
public virtual ConstructionBlock[] ConstructionBlocks { get; set; }
public virtual ConstructionNumber[] ConstructionNumbers { get; set; }
public virtual Document[] Documents { get; set; }
public virtual PurchaseContract[] PurchaseContracts { get; set; }
}
public partial class PurchaseContract
{
public PurchaseContract()
{
CustomFields = new CustomField[]{};
}
public virtual string GlobalID { get; set; }
public virtual string Code { get; set; }
public virtual string Description { get; set; }
public virtual Reference ProjectReference { get; set; }
public virtual string ProductCode { get; set; }
public virtual Relation Relation { get; set; }
public virtual bool Inactive { get; set; }
public virtual CustomField[] CustomFields { get; set; }
public virtual DateTime? CreationDate { get; set; }
public virtual string CreatedBy { get; set; }
public virtual DateTime? ModifiedDate { get; set; }
public virtual string ModifiedBy { get; set; }
}
public partial class Reference
{
public virtual string GlobalID { get; set; }
public virtual string Title { get; set; }
}
public partial class Relation
{
public Relation()
{
CustomFields = new CustomField[]{};
}
public virtual string GlobalID { get; set; }
public virtual string NameLine1 { get; set; }
public virtual string NameLine2 { get; set; }
public virtual Address Address { get; set; }
public virtual MailingAddress MailingAddress { get; set; }
public virtual string Telephone { get; set; }
public virtual string Mobile { get; set; }
public virtual string Email { get; set; }
public virtual string IBAN { get; set; }
public virtual string BankAccountNumber { get; set; }
public virtual string Website { get; set; }
public virtual bool Inactive { get; set; }
public virtual CustomField[] CustomFields { get; set; }
public virtual DateTime? CreationDate { get; set; }
public virtual string CreatedBy { get; set; }
public virtual DateTime? ModifiedDate { get; set; }
public virtual string ModifiedBy { get; set; }
}
}
namespace IDB.API.DTO.Document
{
public partial class Document
: ICustomProperties
{
public Document()
{
CustomProperties = new Dictionary<string, Object>{};
}
public virtual Guid ID { get; set; }
public virtual Guid RootDocumentID { get; set; }
public virtual Guid RegistrationprofileID { get; set; }
public virtual string Title { get; set; }
public virtual string FullTitle { get; set; }
public virtual string Number { get; set; }
public virtual string Version { get; set; }
public virtual string ExternalNumber { get; set; }
public virtual string ExternalVersion { get; set; }
public virtual string InternalNumber { get; set; }
public virtual string InternalInvoiceNumber { get; set; }
public virtual int PersonID { get; set; }
public virtual int RelationID { get; set; }
public virtual string RelationTitle { get; set; }
public virtual int ProjectID { get; set; }
public virtual string ProjectTitle { get; set; }
public virtual string Extension { get; set; }
public virtual DateTime? Date { get; set; }
public virtual int CommentsCount { get; set; }
public virtual bool HasComments { get; set; }
public virtual bool HasPreview { get; set; }
public virtual string ExtraField { get; set; }
public virtual bool IsFavorite { get; set; }
public virtual string DocumentcategoryText { get; set; }
public virtual long? FileSize { get; set; }
public virtual DateTime? FileDate { get; set; }
public virtual string Hash { get; set; }
public virtual string HashType { get; set; }
public virtual string FileUrl { get; set; }
public virtual string StandardDocumentUrl { get; set; }
public virtual bool IsCorporateIdentity { get; set; }
public virtual string UserTitle { get; set; }
public virtual bool IsFrozen { get; set; }
public virtual int InternalCompanyID { get; set; }
public virtual string DirectUrl { get; set; }
public virtual bool AllowDigitalSigningOnlyOnPrimaryVersions { get; set; }
public virtual bool IsPrimaryVersion { get; set; }
public virtual string FileExtension { get; set; }
public virtual Dictionary<string, Object> CustomProperties { get; set; }
}
}
C# ProcessProjectRequestMessage DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /jsv/reply/ProcessProjectRequestMessage HTTP/1.1
Host: kpm_digiofficeapigateway.tbi.nl
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
ProjectRequest:
{
Header:
{
MessageID: String,
Timestamp: 0001-01-01,
Sender:
{
Title: String,
Code: String,
Version: String,
Environment:
{
Title: String,
Code: String
}
},
Recipient:
{
Title: String,
Code: String,
Version: String,
Environment:
{
Title: String,
Code: String
}
},
RequestMessageID: {}
},
ProjectReference:
{
GlobalID: String,
Title: String
},
IncludeHousingTypes: False,
IncludeConstructionBlocks: False,
IncludeConstructionNumbers: False,
IncludeDocuments: False,
IncludePurchaseContracts: False
}
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
Header:
{
MessageID: String,
Timestamp: 0001-01-01,
Sender:
{
Title: String,
Code: String,
Version: String,
Environment:
{
Title: String,
Code: String
}
},
Recipient:
{
Title: String,
Code: String,
Version: String,
Environment:
{
Title: String,
Code: String
}
},
RequestMessageID: {}
},
ProjectReference:
{
GlobalID: String,
Title: String
},
Project:
{
GlobalID: String,
CreationDate: 0001-01-01,
CreatedBy: String,
ModifiedDate: 0001-01-01,
ModifiedBy: String,
Code: String,
Name: String,
Description1: String,
Description2: String,
Address:
{
AddressLine1: String,
AddressLine2: String,
HouseNumber: String,
HouseNumberSuffix: String,
PostalCode: String,
City: String,
Country:
{
GlobalID: String,
Title: String
}
},
MailingAddress:
{
POBox: String,
PostalCode: String,
City: String,
Country:
{
GlobalID: String,
Title: String
}
},
ProjectCategoryReference:
{
GlobalID: String,
Title: String
},
ProjectTypeReference:
{
GlobalID: String,
Title: String
},
ProjectStatusReference:
{
GlobalID: String,
Title: String
},
StartDate: 0001-01-01,
EndDate: 0001-01-01,
CompletionDate: 0001-01-01,
Inactive: False,
Website: String,
IsTemplateProject: False,
CustomFields:
[
{
Name: String,
Value: String
}
]
},
HousingTypes:
[
{
GlobalID: String,
ProjectReference:
{
GlobalID: String,
Title: String
},
Code: String,
Description: String,
CustomFields:
[
{
Name: String,
Value: String
}
],
CreationDate: 0001-01-01,
CreatedBy: String,
ModifiedDate: 0001-01-01,
ModifiedBy: String
}
],
ConstructionBlocks:
[
{
GlobalID: String,
ProjectReference:
{
GlobalID: String,
Title: String
},
Code: String,
Description: String,
CustomFields:
[
{
Name: String,
Value: String
}
],
CreationDate: 0001-01-01,
CreatedBy: String,
ModifiedDate: 0001-01-01,
ModifiedBy: String
}
],
ConstructionNumbers:
[
{
GlobalID: String,
ProjectReference:
{
GlobalID: String,
Title: String
},
HousingTypeReference:
{
GlobalID: String,
Title: String
},
ConstructionBlockReference:
{
GlobalID: String,
Title: String
},
Code: String,
Description: String,
Address:
{
AddressLine1: String,
AddressLine2: String,
HouseNumber: String,
HouseNumberSuffix: String,
PostalCode: String,
City: String,
Country:
{
GlobalID: String,
Title: String
}
},
RentalHouse: False,
GuaranteeCertificateNumber: String,
Inactive: False,
CustomFields:
[
{
Name: String,
Value: String
}
],
CreationDate: 0001-01-01,
CreatedBy: String,
ModifiedDate: 0001-01-01,
ModifiedBy: String,
ViewingDate: 0001-01-01,
ViewingDateSpecified: False,
DeliveryDate: 0001-01-01,
DeliveryDateSpecified: False
}
],
Documents:
[
{
GlobalID: String,
RootDocumentID: String,
Code: String,
Subject: String,
VersionNumber: String,
NewestVersion: False,
RelationReference:
{
GlobalID: String,
Title: String
},
DocumentTypeReference:
{
GlobalID: String,
Title: String
},
ProjectReference:
{
GlobalID: String,
Title: String
},
ConstructionBlockReference:
{
GlobalID: String,
Title: String
},
ConstructionNumberReference:
{
GlobalID: String,
Title: String
},
HousingTypeReference:
{
GlobalID: String,
Title: String
},
Floor: 0,
FloorSpecified: False,
DeletedDate: 0001-01-01,
DeletedDateSpecified: False,
File:
{
Type: String,
Name: String,
Size: 0,
Content: String,
ModifiedDate: 0001-01-01
},
CustomFields:
[
{
Name: String,
Value: String
}
],
CreationDate: 0001-01-01,
CreatedBy: String,
ModifiedDate: 0001-01-01,
ModifiedBy: String
}
],
PurchaseContracts:
[
{
GlobalID: String,
Code: String,
Description: String,
ProjectReference:
{
GlobalID: String,
Title: String
},
ProductCode: String,
Relation:
{
GlobalID: String,
NameLine1: String,
NameLine2: String,
Address:
{
AddressLine1: String,
AddressLine2: String,
HouseNumber: String,
HouseNumberSuffix: String,
PostalCode: String,
City: String,
Country:
{
GlobalID: String,
Title: String
}
},
MailingAddress:
{
POBox: String,
PostalCode: String,
City: String,
Country:
{
GlobalID: String,
Title: String
}
},
Telephone: String,
Mobile: String,
Email: String,
IBAN: String,
BankAccountNumber: String,
Website: String,
Inactive: False,
CustomFields:
[
{
Name: String,
Value: String
}
],
CreationDate: 0001-01-01,
CreatedBy: String,
ModifiedDate: 0001-01-01,
ModifiedBy: String
},
Inactive: False,
CustomFields:
[
{
Name: String,
Value: String
}
],
CreationDate: 0001-01-01,
CreatedBy: String,
ModifiedDate: 0001-01-01,
ModifiedBy: String
}
]
}